Valve改善Linux的記憶體調度 8GB以下顯卡容量利用率大提升

遊戲商城平台 Steam 的母公司 Valve,改寫了 Linux 系統的遊戲生態,更不斷地持續精進,近期公布了新技術改善了系統不會分辨遊戲資源優先程度,而胡亂釋放顯示記憶體內資料的毛病,減少 8 GB 以下的顯卡出現資料溢出的問題,提升遊戲的 FPS 穩定性。
Valve 的 Linux 開發工程師 Natalie Vock 在近期發表了 dmemcg-booster (Device Memory Control Groups) 記憶體管理技術,改善傳統 Linux 無法辨別資源分配的優先性,當 VRAM 顯示記憶體緊繃時,系統可能會把重要的遊戲資源踢出到 GTT 系統記憶體中,造成資料調度效率低落。而新的技術簡言之就會自動辨識哪些是遊戲的重點資料,使它們擁有最高的 VRAM 佔用權,降低被搬移到別處的機率。
Natalie Vock 以《電馭叛客 2077》在 8 GB VRAM 的設備上進行示範,在傳統 Linux 上,在記憶體總站用量達到 7.6 GB 時,遊戲主體 (GameThread) 有 1.37 GB 被丟到了 GTT 中,使得每當顯示卡要取得這些資料進行運算時,必須得重新規劃空間進行搬移,造成運算上的浪費。

而在用上dmemcg-booster 後,被丟到 GTT 的資料減少到只剩 0.65 GB,遊戲本體佔用 VRAM 量也從原本的 6 GB 提升到了 7.4 GB,相當近乎完整使用了顯卡的完整 VRAM 空間,資源利用率有著顯著的提升。

這項技術未來如果正式套用到 SteamOS 上,在 Steam Deck 因為是統一記憶體架構,沒有這方面困擾,但對於今年預計推出 Steam Machine 設備,剛好就是只有 8 GB VRAM 的受益者,還能幫助記憶體荒下,8GB以下的中階、入門顯卡能夠用有著更好的遊戲體驗。
不過,這項技術在顯卡驅動上是「不支援」NVIDIA 的,主因是 NVIDIA 的驅動是封閉設計,無法像 AMD 和 Intel 的驅動那樣可以讓第三方程式進行溝通。